package pack01;

import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * @作者：JustOne
 * @时间：2021/8/12 - 20:22
 */
public class Demo05_位移 {
    public static void main(String[] args) throws IOException {

        //
        //景景自己做记录，不用讲
        //景景自己做记录，不用讲
        //景景自己做记录，不用讲
        //
        //读写基本类数据:

        //1，写:因正常情况下每次只能写一个8位，所以当我想写一个大的数字时，写入的也只是它的二进制低8位，
        // 而真实的数可能有4个8位，所以要进行移位:
        // 写第一个8位;myraf.write(num>>>24)
        // 写第二个8位:myraf.write(num>>>16);
        // 写第三个8位;myraf.write(num>>>8);
        // 写低8位:myraf.write(num);这是JAVA低属的做法。但这样太麻烦，所以JAVA提供了简便方法:
        // 写int:myraf.writeInt(78);
        // 写long: myraf.writeLong(123L);
        // 写double: myraf.writeDouble(2.44);

        // 2，读:与写一样，底层也是要要进行移位和组后的，但JAVA也提供了方法:
        // int a = raf.readiInt();
        // double a = raf.readDouble();
        // Long a = raf.rieadLong();
        // 注意：读与写的方式必须严格四配

        //示例：写int
        RandomAccessFile raf = new RandomAccessFile("D:/刘景景的测试文件夹/数字.txt","rw");
        raf.writeInt(9999);//写int
        raf.seek(0);//-----移位到最开始
        int a = raf.readInt();//读
        System.out.println(a);//输出9999
        //如果此时打开文件，看到的可能是乱码，因为我写的是int，而你理解的是String。

    }
}
